/*node type
include all node type

Managed by node func
*/
#ifndef CENGINE_FLOW_NODE_TYPE
#define CENGINE_FLOW_NODE_TYPE

typedef enum flow_base_node_type
{
	NODE_TYPE_NULL, //if cant find type
	NODE_TYPE_TRIGGER, //for 3 const
	NODE_TYPE_TAB,
	NODE_TYPE_NETWORK_INPUT,   
	NODE_TYPE_NETWORK_OUTPUT,
	NODE_TYPE_INJECT, //in
	NODE_TYPE_CATCH,
	NODE_TYPE_STATUS,
	NODE_TYPE_DEBUG,
	NODE_TYPE_LINK_IN,
	NODE_TYPE_LINK_OUT,
	NODE_TYPE_COMMENT,
	NODE_TYPE_CHART,
	NODE_TYPE_BA_BOOLEAN_AND,
	NODE_TYPE_BA_BOOLEAN_NOT,
	NODE_TYPE_BA_BOOLEAN_OR,
	NODE_TYPE_BA_BOOLEAN_RELIABILITY_CHECK_BOOL,
	NODE_TYPE_BA_BOOLEAN_RELIABILITY_CHECK_ENUM,
	NODE_TYPE_BA_BOOLEAN_RELIABILITY_CHECK_FLOAT,
	NODE_TYPE_BA_BOOLEAN_RELIABILITY_MERGE_BOOL,
	NODE_TYPE_BA_BOOLEAN_RELIABILITY_MERGE_ENUM,
	NODE_TYPE_BA_BOOLEAN_RELIABILITY_MERGE_FLOAT,
	NODE_TYPE_BA_BOOLEAN_XOR,
	NODE_TYPE_BA_CALCULATION_EWMA,
	NODE_TYPE_BA_CALCULATION_EXPRESSION_BOOL_OUTPUT,
	NODE_TYPE_BA_CALCULATION_EXPRESSION_FLOAT_OUTPUT,
	NODE_TYPE_BA_CALCULATION_LINE_SEGMENT,
	NODE_TYPE_BA_CALCULATION_SPAN,
	NODE_TYPE_BA_CALCULATION_TOTALIZATION_BOOLEAN_EVENT,
	NODE_TYPE_BA_CALCULATION_TOTALIZATION_ENUM_EVENT,
	NODE_TYPE_BA_CALCULATION_TOTALIZATION_ENUM_RUNTIME,
	NODE_TYPE_BA_COMPARE_EQUAL_BOOL,
	NODE_TYPE_BA_COMPARE_EQUAL_ENUM,
	NODE_TYPE_BA_COMPARE_EQUAL_FLOAT,
	NODE_TYPE_BA_COMPARE_GREATER_THAN_OR_EQUAL,
	NODE_TYPE_BA_COMPARE_GREATER_THAN,
	NODE_TYPE_BA_COMPARE_LESS_THAN_OR_EQUAL,
	NODE_TYPE_BA_COMPARE_LESS_THAN,
	NODE_TYPE_BA_COMPARE_NOT_EQUAL_BOOL,
	NODE_TYPE_BA_COMPARE_NOT_EQUAL_ENUM,
	NODE_TYPE_BA_COMPARE_NOT_EQUAL_FLOAT,
	NODE_TYPE_BA_CONTROL_PID_PRE_PROCESSOR,
	NODE_TYPE_BA_CONTROL_PID_T,
	NODE_TYPE_BA_CONTROL_PID,
	NODE_TYPE_BA_CONTROL_PVDC,
	NODE_TYPE_BA_CONTROL_LEAD_COMPENSATOR,
	NODE_TYPE_BA_CONTROL_MSC_PRE_PROCESSOR,
	NODE_TYPE_BA_CONTROL_NEAR_OPTIMAL_OPEN_LOOP_COOLING_TOWER_CONTROL,
	NODE_TYPE_PID,
	NODE_TYPE_BA_CONSTANT_BOOL, //in
	NODE_TYPE_BA_CONSTANT_ENUM, //in
	NODE_TYPE_BA_CONSTANT_FLOAT,//in
	NODE_TYPE_BA_MATH_ABS,
	NODE_TYPE_BA_MATH_ACOS,
	NODE_TYPE_BA_MATH_ADD,
	NODE_TYPE_BA_MATH_ASIN,
	NODE_TYPE_BA_MATH_ATAN,
	NODE_TYPE_BA_MATH_COS,
	NODE_TYPE_BA_MATH_DIVIDE,
	NODE_TYPE_BA_MATH_EXP,
	NODE_TYPE_BA_MATH_LOG,
	NODE_TYPE_BA_MATH_LOG10,
	NODE_TYPE_BA_MATH_MULTIPLY,
	NODE_TYPE_BA_MATH_NEGATE,
	NODE_TYPE_BA_MATH_POWER,
	NODE_TYPE_BA_MATH_SIN,
	NODE_TYPE_BA_MATH_SQRT,
	NODE_TYPE_BA_MATH_SUBTRACT,
	NODE_TYPE_BA_MATH_TAN,
	NODE_TYPE_BA_MATH_ROUND,
	NODE_TYPE_BA_SELECTION_BOOL_TO_ENUM_TRANS,
	NODE_TYPE_BA_SELECTION_COMMAND_HIERARCHY_BOOL_OUTPUT,
	NODE_TYPE_BA_SELECTION_COMMAND_HIERARCHY_ENUM_OUTPUT,
	NODE_TYPE_BA_SELECTION_ENUM_TO_BOOL_TRANS,
	NODE_TYPE_BA_SELECTION_MUX_BOOL_IO_BOOL_MODE,
	NODE_TYPE_BA_SELECTION_MUX_BOOL_IO_ENUM_MODE,
	NODE_TYPE_BA_SELECTION_MUX_ENUM_IO_BOOL_MODE,
	NODE_TYPE_BA_SELECTION_MUX_ENUM_IO_ENUM_MODE,
	NODE_TYPE_BA_SELECTION_MUX_FLOAT_IO_BOOL_MODE,
	NODE_TYPE_BA_SELECTION_MUX_FLOAT_IO_ENUM_MODE,
	NODE_TYPE_GLOBAL_SEQUENCER,
	NODE_TYPE_BA_SEQUENCER_01,
	NODE_TYPE_BA_SEQUENCER_02,
	NODE_TYPE_BA_SEQUENCER_03,
	NODE_TYPE_BA_SEQUENCER_04,
	NODE_TYPE_BA_SEQUENCER_05,
	NODE_TYPE_BA_SEQUENCER_06,
	NODE_TYPE_BA_SEQUENCER_07,
	NODE_TYPE_BA_SEQUENCER_08,
	NODE_TYPE_BA_SEQUENCER_09,
	NODE_TYPE_BA_SEQUENCER_10,
	NODE_TYPE_BA_SEQUENCER_11,
	NODE_TYPE_BA_SEQUENCER_12,
	NODE_TYPE_BA_SEQUENCER_13,
	NODE_TYPE_BA_SEQUENCER_14,
	NODE_TYPE_BA_SEQUENCER_15,
	NODE_TYPE_BA_SEQUENCER_16,
	NODE_TYPE_BA_TIMING_LATCH,
	NODE_TYPE_BA_TIMING_RATE_LIMITER,
	NODE_TYPE_BA_TIMING_LAST_VALUE_FLOAT,
	NODE_TYPE_BA_TIMING_LAST_VALUE_ENUM,
	NODE_TYPE_BA_TIMING_LAST_VALUE_BOOL,
	NODE_TYPE_BA_TIMING_TIMER,
	NODE_TYPE_BA_STATISTICAL_AVG,
	NODE_TYPE_BA_STATISTICAL_MAX,
	NODE_TYPE_BA_STATISTICAL_MIN,
	NODE_TYPE_BA_STATISTICAL_STATISTICS,
	NODE_TYPE_BA_PSYCHOMETRIC_ENTHALPY,
	NODE_TYPE_BA_PSYCHOMETRIC_FREE_COOL_AVALIABLE,
	NODE_TYPE_BA_PSYCHOMETRIC_WET_BULB,
	NODE_TYPE_BA_CONTAINER_HYBIRD_FUNCTION,
	NODE_TYPE_BA_CONTAINER_STATE,
	NODE_TYPE_BA_PSYCHOMETRIC_DEW_POINT,
	NODE_TYPE_BA_PSYCHOMETRIC_RELATIVE_HUMIDITY,

    NODE_TYPE_MAX = 128
}flow_base_node_type_t;

#endif